package br.com.aquinoevasconcelos.control;

import java.util.ArrayList;
import java.util.List;

import br.com.aquinoevasconcelos.excecao.ObjNaoEncontradoException;
import br.com.aquinoevasconcelos.modelos.Informativo;
import br.com.aquinoevasconcelos.repositorio.IRepositorioADM;
import br.com.aquinoevasconcelos.repositorio.RepositorioADM;
import br.com.aquinoevasconcelos.repositorio.RepositorioInformativo;
import br.com.aquinoevasconcelos.user.Usuario;
import br.com.aquinoevasconcelos.user.UsuarioAdm;

/**
 * @author Paulo Roberto
 * @email paulolima2008@hotmail.com
 * @version 1.0 @ Propriedade da Techcode
 */

@SuppressWarnings("unused")
public class ControladorADM {

	private IRepositorioADM administrador;
	private UsuarioAdm adm = new UsuarioAdm();

	// construtor da classe
	public ControladorADM(IRepositorioADM adm) {
		this.administrador = adm;
	}

	// -------------------------------------------------------------------
	public void inserirADM(UsuarioAdm adm) {
		administrador.inserirADM(adm);
	}

	// -------------------------------------------------------------------

	public void atualizarADM(UsuarioAdm adm) {
		administrador.atualizarADM(adm);
	}

	// -------------------------------------------------------------------
	public void removerADM(UsuarioAdm adm) {
		administrador.removerADM(adm);
	}

	// -------------------------------------------------------------------
	public List<UsuarioAdm> pesquisaADM(String query) {
		return administrador.pesquisaAdministrador(query);
	}

	// -------------------------------------------------------------------
	public List<UsuarioAdm> listaADM() {
		return administrador.listaADM();
	}

	// --------------------------------------------------------------------
	public UsuarioAdm AutenticacaoADM(String login, String senha)
			throws ObjNaoEncontradoException {

		ArrayList<UsuarioAdm> banco = new ArrayList<UsuarioAdm>();

		administrador = new RepositorioADM();

		try {

			banco = (ArrayList<UsuarioAdm>) administrador
					.pesquisaAdministrador("FROM usuario WHERE  login = '"
							+ login + "' AND senha = '" + senha
							+ "' AND identificacao = 'administrador'");

			UsuarioAdm usuADM = new UsuarioAdm();

			usuADM.setCelular1(banco.get(0).getCelular1());
			usuADM.setCelular2(banco.get(0).getCelular2());
			usuADM.setCnpj(banco.get(0).getCnpj());
			usuADM.setEmail(banco.get(0).getEmail());
			usuADM.setEndereco(banco.get(0).getEndereco());
			usuADM.setFuncao(banco.get(0).getFuncao());
			usuADM.setId(banco.get(0).getId());
			usuADM.setLogin(banco.get(0).getLogin());
			usuADM.setNome(banco.get(0).getNome());
			usuADM.setSenha(banco.get(0).getSenha());
			usuADM.setTelefone(banco.get(0).getTelefone());

			if (banco.size() == 0) {

				throw new ObjNaoEncontradoException();
			} else {
				return usuADM;
			}

		} catch (Exception e) {
			throw new ObjNaoEncontradoException();
		}

	}
	//-------------------------------------------------------------------
	public boolean validarSenhaMestre(String senhaMestre){
		// senha de acesso a acoes criticas do sistema
		String senhaSistema = "aq1ui2no3ev4as5co6nc8el9os0";
			
		if (senhaMestre.equals(senhaSistema)){
			// retorna verdadeiro ou seja senha certa
			return true;
		}
		else{
			// retorna falso ou seja senha errada
			return false;
		}
		
		
	}
	//-------------------------------------------------------------------
	public UsuarioAdm EditarAdministrador(long id){
		
		administrador = new RepositorioADM();
		adm = null;
		
		
		adm =  administrador.pesquisaAdministrador("FROM usuario WHERE id = '"+id+"' AND identificacao = 'administrador'").get(0);
		
		return adm;
	}
	//--------------------------------------------------------------------

}
